from image_utils import logging  # 从image_utils.py中导入logging对象

def crop_image(image, crop_region):
    """
    裁剪图像
    :param image: 输入图像，numpy.ndarray对象
    :param crop_region: 裁剪区域，格式为(上,下,左,右)
    :return: 裁剪后的图像
    """
    try:
        logging.info(f"开始裁剪图像，裁剪区域:{crop_region}")
        
        # 从crop_region中提取上、下、左、右的坐标
        top, bottom, left, right = crop_region
        
        # 确保裁剪区域的坐标是有效的
        if top < 0 or bottom > image.shape[0] or left < 0 or right > image.shape[1]:
            raise ValueError("裁剪区域超出图像范围")
        
        # 直接使用切片操作，裁剪图像 image 生成裁剪后的图像 cropped_image
        cropped_image = image[top:bottom, left:right]
        
        return cropped_image
    except Exception as e:
        logging.error(f"裁剪图像时发生错误: {e}")
        raise ValueError(f"Error occurred while cropping image: {e}")